#if !defined(_LIST_H_)
#define _LIST_H_

#include "new.h"
#include "hash_object.h"

typedef void* Pointer;

struct HashList
{
	struct HashObject _;
    struct HashList *next;
};

Pointer hash_list_prepend(Pointer _list, char* key, Pointer data, size_t datasize, unsigned int hash);

Pointer hash_list_foreach(Pointer _list, void (*f)(char *key, Pointer data));

int hash_list_has(Pointer _list, char* key);

Pointer hash_list_remove_all(Pointer _list, char* key);

void hash_list_delete_one(Pointer _self);

extern const void *HashList;

#endif